<template>
    <h2>这是index的子组件</h2>
    <!-- {{ props.msg }} -- {{ props.tel }} -->
    <!-- <button @click = "add">jia1</button>
    <button @click = "reduce">jian1</button> -->
    <h1 v-if="flag">模态窗口</h1>
</template>

<script setup lang="ts">
    import {defineEmits,ref} from "vue"
    import { inject, type Ref } from 'vue';
    let afterFlag = inject<Ref<number>>("num");
    console.log(afterFlag?.value);
    let flag = ref<boolean>(false);
    let openModal = ()=>{
        flag.value = !flag.value;
    }

    defineExpose({
		openModal,
        a:100
	})
    // 父传子
    // let props = defineProps({
    //     msg:{
    //         required:true,
    //         type:String
    //     },
    //     tel:{
    //         required:true,//false---当前属性不是必传
    //         type:Number
    //     },
    // })

    // let props = defineProps<{
    //    msg:String,
    //    tel?:Number
    // }>()

    // interface defineType{
    //    msg:string,
    //    tel?:number
    // }
    // const props=withDefaults(defineProps<defineType>(),{
	// 	tel:110
	// })
    // let props = defineProps<defineType>()
    // 导入接口
    // import type {definePropsType} from "@/model"
    // let props = defineProps<definePropsType>()
    // console.log(props.msg);
    // console.log(props.tel);

    // 子传父--vue3
    // let emit = defineEmits(["add","reduce"]);
    // let add = ()=>{
    //     emit("add",5)
    // }
    // let reduce = ()=>{
    //     emit("reduce",2)
    // }


    // type defineEmits = {
    //     (e:"add",count:string,num1:number):void;
    //     (e:"reduce",item:number):void;
    // }
    // const emit=defineEmits<defineEmits>()

    // 3.3++
    // type flagType = {
    //     add:[num:String,num1:Number],
    //     reduce:[nun:number]
    // }
    // const emit = defineEmits<flagType>()
    // let add = ()=>{
    //     emit("add","10",123)
    // }
    // let reduce = ()=>{
    //     emit("reduce",100)
    // }
    
   
</script>

<style scoped>

</style>